perm filename GEOMES.HDR[GEM,HE] blob sn#416077 filedate 1977-09-21 generic text, type C, neo UTF8
COMMENT ⊗   VALID 00008 PAGES
C REC  PAGE   DESCRIPTION
C00001 00001
C00002 00002
C00004 00003	COMMENT EUCLID
C00005 00004	COMMENT WINGED EDGE PRIMITIVES
C00007 00005	COMMENT EULER PRIMITIVES
C00008 00006	COMMENT EXTERNAL DECLARATIONS FOR DISPLAY ROUTINES
C00009 00007	COMMENT GEM-NODE NAMES FOR LINKS AND DATA
C00011 00008
C00013 ENDMK
C⊗;

	REQUIRE "GEOMED.REL[SAI,BGB]"	LOAD_MODULE;
	REQUIRE "GEOMES.REL[SAI,BGB]"	LOAD_MODULE;
	REQUIRE "UTILTY.REL[SAI,BGB]"	LOAD_MODULE;
	REQUIRE "EULER.REL[SAI,BGB]"	LOAD_MODULE;
	REQUIRE "EUCLID.REL[SAI,BGB]"	LOAD_MODULE;
	REQUIRE "OCCULT.REL[SAI,BGB]"	LOAD_MODULE;
	REQUIRE "BIN.REL[SAI,BGB]"	LOAD_MODULE;

	REQUIRE "⊂⊃⊂⊃" DELIMITERS;
	DEFINE $UBR=⊂EXTERNAL SIMPLE INTEGER PROCEDURE⊃;

COMMENT BASIC GEOMED, IO AND DISPLAY;
	EXTERNAL INTEGER UNIVERSE;
	INTERNAL INTEGER RESULT;

	$UBR MKUNIV;
	$UBR GEOMED;
	$UBR GEODPY;

	$UBR SHOW1(INTEGER WINDOW,GLASS);
	$UBR SHOW2(INTEGER WINDOW,GLASS);
	$UBR SHOW3(INTEGER WINDOW,GLASS);

	$UBR PPROJ(INTEGER CAMERA,WORLD);

	$UBR INGEM(STRING FILNAM);
	$UBR INB3D(STRING FILNAM);
	$UBR INCAM(STRING FILNAM);
	$UBR SETFOC(REAL FMM);

	$UBR FDNAME(STRING FILNAM);
	$UBR OUTGEM(STRING FILNAM;INTEGER B);
	$UBR OUTB3D(STRING FILNAM;INTEGER B);
	$UBR OUTCAM(STRING FILNAM);
	$UBR PLOTO(STRING FILNAM);

COMMENT EUCLID;
	$UBR APTRAM(INTEGER Q,ET);
	$UBR INTRAM(INTEGER ET);
	$UBR TRANSL(INTEGER Q;REAL X,Y,Z);
	$UBR ROTATE(INTEGER Q;REAL X,Y,Z);
	$UBR SHRINK(INTEGER Q;REAL X,Y,Z);

	$UBR MKTRMA(REAL P,T,S);
	$UBR MKTRMF(INTEGER F);
	$UBR MKTRMV(REAL WX,WY,WZ);
	$UBR MKROTV(INTEGER TRAM);
	$UBR MKTRAM;

	EXTERNAL SIMPLE REAL PROCEDURE DISTAN(INTEGER Q1,Q2);
	EXTERNAL SIMPLE REAL PROCEDURE DETERM(INTEGER Q);

2∞>lj⊗:Q¬:&:≡,!α⊗∩<)αBJLj&R&4*Ml4PI∩V
∩α6.:|"∃"&u"⊗≡⊗∩αRfAKX%∩V∃⊃α.2tz∩∃"LrR⊗≡-⊃α:>$)%l4PI∩V
∩α6.∞j⊗J¬DJ:R⊗<*Iα↑⎇∩2⊃%XI∩V
∩α6.↑⎇∩2⊃lhP%∩V∃⊃α6.<J:∩>:B&:R,:⊗Iα≤
6⊗J
b↑&:$z]%lhP%∩V∃⊃α6.∩B&:R,:⊗Iα<zJ2⊃KX%∩V∃⊃α.2∩B&:R,:⊗Iα∀r⊗]%Xh(%∩,∩Iα.d∩~⊗YDJ:R⊗<*Iα
t*]%lJ"V
I∧j.
~3X4(%%*
Iα\J21"LrR⊗≡-⊃α
:-9%l4PI∩V
∩α6.→DJ:R⊗<*Iα~t*]%lHI∩V
∩α.2→DJ:R⊗<*Iα~t*]%lhP%∩V∃⊃α6.*B&:R,:⊗Iα,r⊗]%XH%∩V∃⊃α.2*B&:R,:⊗Iα,r⊗]%Xh(%∩,∩Iα6]1"&:$*≡⊗I¬2:⊗]KX$%∩,∩Iα.e1"&:$*≡⊗I¬2:⊗]KX4(%%*
Iα<J:≥"LrR⊗≡-⊃α∃Ed)I%lJ"V
I∧b&:.,!"&:$*≡⊗I¬	E2E∩Il4(J"V
I∧*∞]"LrR⊗≡-⊃αEEe	I%lJ"V
I∧*∞∞]DJ:R⊗<*IαE
bEI%Xh(%∩,∩Iα>$B⊗I"LrR⊗≡-⊃αEEe	I%lJ"V
I∧∩≡⊗QDJ:R⊗<*IαEKX4(%%*
Iα4~]"&u"⊗≡⊗∩α∃2→KX$%∩,∩IαZ≤~]"&u"⊗≡⊗∩α∃2→KX4(%%*
Iα4~]"&u"⊗≡⊗∩α∃2YKX$%∩,∩Iα~≤~]"&u"⊗≡⊗∩α∃2YKX4(%%*
Iα∀"⊗Q"LrR⊗≡-⊃αE%XH%∩V∃⊃α
ε%!"&:$*≡⊗I¬	E2E∩Il4(hP2∞>lj⊗:Q∧*V2⊗∩αBJ&lJR&Z-→l4(J"V
I∧J:Z⊗∃!"&:$*≡⊗I∧)%l$J"V
I∧*Z⊗J"B&:R,:⊗Iα∩Il4(J"V
I∧j.⊗YDJ:R⊗<*Iα→e1%l$J"V
I∧j.~∃DJ:R⊗<*IαY
b→2Y∩Il4(J"V
I∧*NB2M!"&:$*≡⊗I∧)%l4PH4(%%*
Iα\b~∃"LrR⊗≡-⊃α∃%Xh(%∩,∩Iα.d*Y"&u"⊗≡⊗∩αY%lhP%∩V∃⊃α.24)"&:$*≡⊗I∧)%l4Ph(%∩,∩Iα6\~>BeDJ:R⊗<*Iα	KX4(%%*
Iα<bV∃"LrR⊗≡-⊃α→Ed1I%lhP%∩V∃⊃α≡2,*∃"&u"⊗≡⊗∩α→E23	2→Ie1I%lhP4(%%*
Iα≥:⊗⊗ADJ:R⊗<*Iα→d22≥%Xh(%∩,∩IαJ⎇"∞>5DJ:R⊗<*Iα→KX4(%%*
Iα¬JJε6L!"&:$*≡⊗I∧2Y%lhP4(%%*
Iα∀*6>Z2B&:R,:⊗Iα2Il4(J"V
I∧2Z∩Va"&:$*≡⊗I∧⊃%l4Ph(%∩,∩Iα6\~V
∃E∩⊗ε1∧	2	2~Il4(J"V
I∧j.∞fdq"J⊗aαI2rbi%lhP%∩V∃⊃α6.∀
21"∀*ε1α∩b529KX4(4PI∩V
∩α
V9DJ:R⊗<*Iα	
b	I%Xh(%∩,∩Iα
Lq"&:$*≡⊗I∧⊃E2	∩Il4(J"V
I∧∩NV	DJ:R⊗<*Iα	
b	I%Xh(4(2∞>lj⊗:Q∧*bR⊗∀rε1α$*∞2ε∀
R&>u→α~>∩α∩&N∧bεeα∀zVR&t*Ml4Ph(%∩,∩Iα∩¬JN⊗QDJ:R⊗<*Iαε∃∩εeα¬"I%lhP%∩V∃⊃α∩BL∩&≥"LrR⊗≡-⊃αN&T)%l4PI∩V
∩α∩Bf∃∩Q"&u"⊗≡⊗∩αN&j*Il4(hP%∩V∃⊃αεZ,~Q"&u"⊗≡⊗∩αa2eKX4(%%*
IαJZ⊗∞"B&:R,:⊗IαBbe%lhP%∩V∃⊃αJZ,~Q"&u"⊗≡⊗∩αa2eKX4(%%*
Iα∀JZ⊗∞"B&:R,:⊗IαBbe%lhP4(%%*
Iα%αfNN"BNRJLr≥αMKX4(%%*
Iα%αf>V"B&:R,:⊗Iα∧z≥%lhP%∩V∃⊃α∩BM~RI"∀*~⊗J,r∞∃αLrR⊗≡-⊃αR⊗E!%l4Ph(%∩,∩Iα∩%J="&u"⊗≡⊗∩α
BR∩Il4(J"V
I∧z∞R∩¬I"&:$*≡⊗I¬A%l4PI∩V
∩α∩⊗∞%αe"&u"⊗≡⊗∩αa%lhP%∩V∃⊃α~2|"Be"∀*ε1αCZ&:R,:⊗Iα∧bε∞⊗~AQ%%Xh(4(2∞>lj⊗:Q∧:⊗56tz∩∃αt
6⊗M∧2>IαdJ:.M∧
:⊃α$
R¬lhP%∩V∃⊃α∞ε∩B&:R,:⊗Iα
Il4(J"V
I∧~∩I"LrR⊗≡-⊃αE%Xh(%∩,∩Iα∩M↓"&:$*≡⊗I∧

2EKX4(%%*
Iα$
A"&u"⊗≡⊗∩αε
2
Il4(hRN&6∧b∃α&u"⊗≡⊗∩αBJ>≤*∩VJ*αb↑⊃DJ:R⊗<*IαE
bEI%]~RεJ!B∞>∩*α"J2R↓E2EZ"JIβ	2EI\*:⊃lhP4*∞|j6⊗:"α↑>Jd!α2>≥*Ml4PJ∩⊗~Lr∃αb<→"Y%iα6⊗6⎇∩fnYk→2J⊗btElhP&∩⊗4J:∃αM:
"YKhB6⊗lzJfn2iI2J,
2tEXh(&∩,2&:∃¬R↑
"2ItB6,j>Jf]15E2∀*ε2tX4(&$*~&:*αε¬"2ItB6,j>Jf]15M2∀*ε2tX4(&$*~&:*α
	"2ItB6,j>Jf]15I2∀*ε2tX4(&$*~&:*α∞
"2ItB6,j>Jf]15E2∀*ε2tX4(&$*~&:*α

&#hA≥Eβ↓AAA↓	l4(hR∞>6l*:Qα∀zRεRLz9α6
"J&aXh(&∩,2&:∃∧Ja"YKhB6⊗lzJfn2YA2J,
2tEXh(&∩,2&:∃∧Je"YKhB6⊗lzJfn2YE2J,
2tEXh(&∩,2&:∃∧Ji"YKhB6⊗lzJfn2YI2J,
2tEXh(&∩,2&:∃∧Ra"YKhB6⊗lzJfn2YM2J,
2tEXh(&∩,2&:∃∧Re"YKhB6⊗lzJfn2YQ2J,
2tEXh(&∩,2&:∃∧Ri"YKhB6⊗lzJfn2YU2J,
2tEXh(&∩,2&:∃∧Za"YKhB6⊗lzJfn2YY2J,
2tEXh(&∩,2&:∃∧Ze"YKhB6⊗lzJfn2Y]2J,
2tEXh(&∩,2&:∃∧Zi"YKhB6⊗lzJfn2Ya2J,
2tEXh(4*≤z66⊗u!αB⊗∃~B⊗∞$JZ∃6¬∩>*⊗≥"⊗⊃αdz∞VMXh(&∩,2&:∃¬BBA"2ItB6,j>Jf]1-Q2∀*ε2tX4(&$*~&:*αfBAE1%tBl*6>JMZY-Ue∩⊗ε2i	l4(L"⊗~&t)αjBαBY%t∧j⊗6>∃JnY-2bJ⊗εehEl4P58&
DEFINE NFACE(Q)=⊂CAR((Q)+1)⊃;	DEFINE PFACE(Q)=⊂CDR((Q)+1)⊃;
DEFINE NED(Q)=⊂CAR((Q)+2)⊃;	DEFINE PED(Q)=⊂CDR((Q)+2)⊃;
DEFINE NVT(Q)=⊂CAR((Q)+3)⊃;	DEFINE PVT(Q)=⊂CDR((Q)+3)⊃;
DEFINE NCW(Q)=⊂CAR((Q)+4)⊃;	DEFINE PCW(Q)=⊂CDR((Q)+4)⊃;
DEFINE NCCW(Q)=⊂CAR((Q)+5)⊃;	DEFINE PCCW(Q)=⊂CDR((Q)+5)⊃;

DEFINE DAD(Q)=⊂CAR((Q)+4)⊃;	DEFINE SON(Q)=⊂CDR((Q)+4)⊃;
DEFINE BRO(Q)=⊂CAR((Q)+5)⊃;	DEFINE SIS(Q)=⊂CDR((Q)+5)⊃;

DEFINE ALT(Q)=⊂CAR((Q)+6)⊃;	DEFINE ALT2(Q)=⊂CDR((Q)+6)⊃;
DEFINE TRAM(Q)=⊂CDR(((Q))+6)⊃;
DEFINE CW(Q)=⊂CAR((Q)+7)⊃;	DEFINE CCW(Q)=⊂CDR((Q)+7)⊃;

DEFINE NLINK(Q)=⊂CAR((Q)+8)⊃;	DEFINE PLINK(Q)=⊂CDR((Q)+8)⊃;

DEFINE NFACE$(A,Q)=⊂DIP((A),(Q)+1)⊃;	DEFINE PFACE$(A,Q)=⊂DAP((A),(Q)+1)⊃;
DEFINE NED$(A,Q)=⊂DIP((A),(Q)+2)⊃;	DEFINE PED$(A,Q)=⊂DAP((A),(Q)+2)⊃;
DEFINE NVT$(A,Q)=⊂DIP((A),(Q)+3)⊃;	DEFINE PVT$(A,Q)=⊂DAP((A),(Q)+3)⊃;
DEFINE NLINK$(A,Q)=⊂DIP((A),(Q)+8)⊃;	DEFINE PLINK$(A,Q)=⊂DAP((A),(Q)+8)⊃;

REQUIRE UNSTACK_DELIMITERS;